--[[
描述 ： 文件下载 类 
作者 ： 付大志
修改 ： xxs- android
时间 ： 14/12/01
]]

 
MLNetFile = Class(MLPlugin,'MLNetFile'); 
MLNetFile.mInstance =nil;
MLNetFile.mHashcode =nil;

--[[
功能：   网络响应 事件监听函数
参数：	status	响应状态.true 连接成功，falsel连接失败
参数：	desc	错误信息描述
返回：	无 
]] 
function qt_enevt_LoadFile(hashcode, status, data)
	-- if status == 0 then status = false else status = true; end
	if qtEvent[hashcode]~=nil then
		if  qtEvent[hashcode].onNetFile  ~= nil  then
			qtEvent[hashcode].onNetFile(status, data);
		end
	end
end
--[[
功能：   初始化 文件下载 实例
参数：	无	
返回：	文件下载 实例 
]] 
function  MLNetFile:initNetFile ()  
	self.mInstance = DownloadFile:new();
	self.mHashcode = self.mInstance:loadFileGetHashCode();
	qtEvent[self.mHashcode]=self;
	return self;
end 

--[[
功能：   设置http头
参数：	string key	为http headKey
参数：	string value	为http headvalue
返回：	网络数据 实例
]] 
function  MLNetFile:setHead (key, value)
  if key==nil then print('Warning: MLNetFile:setHead(), agrument 1 is nil'); return end
  if type(key) ~= 'string'  then print('Warning: MLNetFile:setHead(), argument 1, type is not string!'); return  end 

  if value==nil then print('Warning: MLNetFile:setHead(), agrument 2 is nil'); return end
  if type(value) ~= 'string'  then print('Warning: MLNetFile:setHead(), argument 2, type is not string!'); return  end 
	self.mInstance:loadFileSetHead(key,value);
end 

--[[
功能：   请求下载文件
参数：	string url	下载url
参数：	string filePath	保存全路径文件名
参数：	string data	如果有值，则为post没有默认为get
参数：	number  ms	超时时间单位(m 秒).默认60秒
返回：   无 
]] 
function  MLNetFile:request ( url,  filePath,  data, ms)
	  if url==nil then print('Warning: MLNetFile:request(), agrument 1 is nil'); return end
  if type(url) ~= 'string'  then print('Warning: MLNetFile:request(), argument 1, type is not string!'); return  end 

  if filePath==nil then print('Warning: MLNetFile:request(), agrument 2 is nil'); return end
  if type(filePath) ~= 'string'  then print('Warning: MLNetFile:request(), argument 2, type is not string!'); return  end 

  if data==nil then print('Warning: MLNetFile:request(), agrument 3 is nil'); return end
  if type(data) ~= 'string'  then print('Warning: MLNetFile:request(), argument 3, type is not string!'); return  end 

  local  ms = ms or 60
  if type(ms) ~= 'number'  then print('Warning: MLNetFile:request(), argument 4, type is not number!'); return  end 

		self.mInstance:loadFileRequest(url, filePath, data,ms or 60);
end 

--[[
功能：   取消联网
参数：	无	
返回：	无 
]] 
function  MLNetFile:cancel ()
	self.mInstance:loadFileCancel();
end 

--[[
功能：   上传文件
参数：	 url 上传url   filePath 上传文件路径 data	post数据.没有默认为get   ms	超时时间单位(m).默认60秒
返回：	无 
]]  
function MLNetFile:upLoad(url,filePath,data,s)
	s = s or 60;
	data=data or '';
	
if url==nil then print('Warning: MLNetFile:upLoad(), agrument 1 is nil'); return end
  if type(url) ~= 'string'  then print('Warning: MLNetFile:upLoad(), argument 1, type is not string!'); return  end 

  if filePath==nil then print('Warning: MLNetFile:upLoad(), agrument 2 is nil'); return end
  if type(filePath) ~= 'string'  then print('Warning: MLNetFile:upLoad(), argument 2, type is not string!'); return  end 

  if data==nil then print('Warning: MLNetFile:upLoad(), agrument 3 is nil'); return end
  if type(data) ~= 'string'  then print('Warning: MLNetFile:upLoad(), argument 3, type is not string!'); return  end 

  local  ms = ms or 60
  if type(ms) ~= 'number'  then print('Warning: MLNetFile:upLoad(), argument 4, type is not number!'); return  end 


	--self.mInstance:loadFileUpLoad(url,filePath,data,s);
end	

--[[
功能：   网络响应 事件监听函数
参数：	status	响应状态.true 连接成功，falsel连接失败
参数：	desc	错误信息描述
返回：	无 
]]  
function MLNetFile:onCallBack(resultCode,arg)
	 if  self.onNetFile  ~= nil  then 
		 self.onNetFile(arg[1], arg[2]);
	 end
end

